#!/bin/bash

# 定义变量：数据同步日期，表示同步哪一条日志数据
# 第1、执行shell脚本时，传递参数
# 第2、如果没有传递参数，同步前一天数据
if [ -n "$1" ] ; then
  data_date=$1
else
  data_date=`date -d "-1 days" +%F`
fi

# 1-数据清洗
DWS_EVENT_LOG_SESSION_AGG_SQL="
INSERT OVERWRITE TABLE jtp_app_dws.dws_event_log_session_agg PARTITION (dt = '${data_date}')
SELECT
    device_id, device_type, session_id, province, city
     , count(session_id) AS session_pv
     , max(event_ts) - min(event_ts) AS session_during_time
     , split(
        sort_array(
                collect_list(
                        if(event_id = 'pageView', concat(event_ts, '_' , properties['url']), NULL)
                    )
            )[0],
         '_'
    )[1] AS session_entry_url
FROM jtp_app_dwd.dwd_event_log_detail
WHERE dt = '${data_date}'
GROUP BY device_id, device_type, session_id, province, city
;
"

# 执行SQL语句
/opt/module/spark/bin/beeline -u jdbc:hive2://node101:10001 -n bwie -e "${DWS_EVENT_LOG_SESSION_AGG_SQL}"

